<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Freetype OpenGL: vec234.h Source File</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="style.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="content"><!-- do not remove this div! -->

<div id="top"><!-- do not remove this div! -->

  
  <div id="titlearea">
    
    <div id="projectname">Freetype OpenGL</div>
    
    
    <div id="projectbrief">A high quality OpenGL text rendering engine for C</div>
    
  </div>
  

<!--

<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Freetype OpenGL
   &#160;<span id="projectnumber">0.1</span>
   </div>
   <div id="projectbrief">A high quality OpenGL text rendering engine for C</div>
  </td>
  
  
  
   
  
 </tr>
 </tbody>
</table>
</div>
-->


<!-- Generated by Doxygen 1.8.0 -->
<script type="text/javascript" src="dynsections.js"></script>
</div>
<div class="header">
  <div class="headertitle">
<div class="title">vec234.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* ============================================================================</span>
<a name="l00002"></a>00002 <span class="comment"> * Freetype GL - A C OpenGL Freetype engine</span>
<a name="l00003"></a>00003 <span class="comment"> * Platform:    Any</span>
<a name="l00004"></a>00004 <span class="comment"> * WWW:         http://code.google.com/p/freetype-gl/</span>
<a name="l00005"></a>00005 <span class="comment"> * ----------------------------------------------------------------------------</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright 2011,2012 Nicolas P. Rougier. All rights reserved.</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00009"></a>00009 <span class="comment"> * modification, are permitted provided that the following conditions are met:</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> *  1. Redistributions of source code must retain the above copyright notice,</span>
<a name="l00012"></a>00012 <span class="comment"> *     this list of conditions and the following disclaimer.</span>
<a name="l00013"></a>00013 <span class="comment"> *</span>
<a name="l00014"></a>00014 <span class="comment"> *  2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00015"></a>00015 <span class="comment"> *     notice, this list of conditions and the following disclaimer in the</span>
<a name="l00016"></a>00016 <span class="comment"> *     documentation and/or other materials provided with the distribution.</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY NICOLAS P. ROUGIER &#39;&#39;AS IS&#39;&#39; AND ANY EXPRESS OR</span>
<a name="l00019"></a>00019 <span class="comment"> * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</span>
<a name="l00020"></a>00020 <span class="comment"> * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO</span>
<a name="l00021"></a>00021 <span class="comment"> * EVENT SHALL NICOLAS P. ROUGIER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,</span>
<a name="l00022"></a>00022 <span class="comment"> * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span>
<a name="l00023"></a>00023 <span class="comment"> * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span>
<a name="l00024"></a>00024 <span class="comment"> * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</span>
<a name="l00025"></a>00025 <span class="comment"> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
<a name="l00026"></a>00026 <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF</span>
<a name="l00027"></a>00027 <span class="comment"> * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * The views and conclusions contained in the software and documentation are</span>
<a name="l00030"></a>00030 <span class="comment"> * those of the authors and should not be interpreted as representing official</span>
<a name="l00031"></a>00031 <span class="comment"> * policies, either expressed or implied, of Nicolas P. Rougier.</span>
<a name="l00032"></a>00032 <span class="comment"> * ============================================================================</span>
<a name="l00033"></a>00033 <span class="comment"> */</span>
<a name="l00034"></a>00034 <span class="preprocessor">#ifndef __VEC234_H__</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define __VEC234_H__</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span>
<a name="l00037"></a>00037 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00039"></a>00039 <span class="preprocessor">#endif</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span>
<a name="l00041"></a>00041 
<a name="l00052"></a><a class="code" href="unionivec4.html">00052</a> <span class="keyword">typedef</span> <span class="keyword">union</span>
<a name="l00053"></a>00053 {
<a name="l00054"></a><a class="code" href="unionivec4.html#a5f3fe954e91c428356cc5991edde09aa">00054</a>     <span class="keywordtype">int</span> data[4];    
<a name="l00055"></a>00055     <span class="keyword">struct </span>{
<a name="l00056"></a><a class="code" href="unionivec4.html#a23145e2d274c7f165dec8e83bb80f690">00056</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a23145e2d274c7f165dec8e83bb80f690" title="Alias for first component.">x</a>;      
<a name="l00057"></a><a class="code" href="unionivec4.html#af31284e1d1a00ab2baf19c1290e90352">00057</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#af31284e1d1a00ab2baf19c1290e90352" title="Alias for second component.">y</a>;      
<a name="l00058"></a><a class="code" href="unionivec4.html#a6abe610e636352cb43f298bc0668d1ae">00058</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a6abe610e636352cb43f298bc0668d1ae" title="Alias for third component.">z</a>;      
<a name="l00059"></a><a class="code" href="unionivec4.html#a4568e01b0af9be7c3a7ef66b26675397">00059</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a4568e01b0af9be7c3a7ef66b26675397" title="Alias for fourht component.">w</a>;      
<a name="l00060"></a>00060     };
<a name="l00061"></a>00061     <span class="keyword">struct </span>{
<a name="l00062"></a><a class="code" href="unionivec4.html#ad60eef4ce6a77264f8dead9d188e5339">00062</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#ad60eef4ce6a77264f8dead9d188e5339" title="Alias for first component.">x_</a>;     
<a name="l00063"></a><a class="code" href="unionivec4.html#a695a0423fc5d845982f2adaa7f6e8a09">00063</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a695a0423fc5d845982f2adaa7f6e8a09" title="Alias for second component.">y_</a>;     
<a name="l00064"></a><a class="code" href="unionivec4.html#a9d0e4978d049ba65b2165217953552f2">00064</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a9d0e4978d049ba65b2165217953552f2" title="Alias for third component.">width</a>;  
<a name="l00065"></a><a class="code" href="unionivec4.html#afee981dd94e13fdfb8a5f737da9efc0a">00065</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#afee981dd94e13fdfb8a5f737da9efc0a" title="Alias for fourth component.">height</a>; 
<a name="l00066"></a>00066     };
<a name="l00067"></a>00067     <span class="keyword">struct </span>{
<a name="l00068"></a><a class="code" href="unionivec4.html#a692f6588a43d66e99beeb019dcd973b1">00068</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a692f6588a43d66e99beeb019dcd973b1" title="Alias for first component.">r</a>;      
<a name="l00069"></a><a class="code" href="unionivec4.html#ab82b31726f26c9e6f761500f06b10780">00069</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#ab82b31726f26c9e6f761500f06b10780" title="Alias for second component.">g</a>;      
<a name="l00070"></a><a class="code" href="unionivec4.html#a1cd29855d169d281ea7f4a1ec8fd46f4">00070</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a1cd29855d169d281ea7f4a1ec8fd46f4" title="Alias for third component.">b</a>;      
<a name="l00071"></a><a class="code" href="unionivec4.html#acd01d5c8af85ee868feebea422df3478">00071</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#acd01d5c8af85ee868feebea422df3478" title="Alias for fourth component.">a</a>;      
<a name="l00072"></a>00072     };
<a name="l00073"></a>00073     <span class="keyword">struct </span>{
<a name="l00074"></a><a class="code" href="unionivec4.html#a93fc0a4514c5cda4cd4859de560a7b8c">00074</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a93fc0a4514c5cda4cd4859de560a7b8c" title="Alias for first component.">red</a>;    
<a name="l00075"></a><a class="code" href="unionivec4.html#aca12e6d2b7bc741a4fda7fc36689cdd6">00075</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#aca12e6d2b7bc741a4fda7fc36689cdd6" title="Alias for second component.">green</a>;  
<a name="l00076"></a><a class="code" href="unionivec4.html#a4b2de15f99f0a5419bdd969cd678e1ba">00076</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a4b2de15f99f0a5419bdd969cd678e1ba" title="Alias for third component.">blue</a>;   
<a name="l00077"></a><a class="code" href="unionivec4.html#afb958417ecfa185b3a38cef65cfa7fe9">00077</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#afb958417ecfa185b3a38cef65cfa7fe9" title="Alias for fourth component.">alpha</a>;  
<a name="l00078"></a>00078     };
<a name="l00079"></a>00079     <span class="keyword">struct </span>{
<a name="l00080"></a><a class="code" href="unionivec4.html#ab87cbb6ef39b1e8a38ad067e69685035">00080</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#ab87cbb6ef39b1e8a38ad067e69685035" title="Alias for first component.">vstart</a>; 
<a name="l00081"></a><a class="code" href="unionivec4.html#acc310a5ea0ce4fd0c2d9868a85d90d88">00081</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#acc310a5ea0ce4fd0c2d9868a85d90d88" title="Alias for second component.">vcount</a>; 
<a name="l00082"></a><a class="code" href="unionivec4.html#a717b84c897e44a67ccfe641dcea0949e">00082</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#a717b84c897e44a67ccfe641dcea0949e" title="Alias for third component.">istart</a>; 
<a name="l00083"></a><a class="code" href="unionivec4.html#ab2a33415af2a75fc0ed287748c68614d">00083</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec4.html#ab2a33415af2a75fc0ed287748c68614d" title="Alias for fourth component.">icount</a>; 
<a name="l00084"></a>00084     };
<a name="l00085"></a>00085 } <a class="code" href="unionivec4.html" title="Tuple of 4 ints.">ivec4</a>;
<a name="l00086"></a>00086 
<a name="l00087"></a>00087 
<a name="l00097"></a><a class="code" href="unionivec3.html">00097</a> <span class="keyword">typedef</span> <span class="keyword">union</span>
<a name="l00098"></a>00098 {
<a name="l00099"></a><a class="code" href="unionivec3.html#adb83aff6bdf09f056cf532a643d3ddd7">00099</a>     <span class="keywordtype">int</span> data[3];    
<a name="l00100"></a>00100     <span class="keyword">struct </span>{
<a name="l00101"></a><a class="code" href="unionivec3.html#abd057287b30a6a46149140a06a99c095">00101</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#abd057287b30a6a46149140a06a99c095" title="Alias for first component.">x</a>;      
<a name="l00102"></a><a class="code" href="unionivec3.html#a5d357792d17227853dc471833c39e418">00102</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#a5d357792d17227853dc471833c39e418" title="Alias for second component.">y</a>;      
<a name="l00103"></a><a class="code" href="unionivec3.html#a9dae2beaafce27c6888ff34af94f58e5">00103</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#a9dae2beaafce27c6888ff34af94f58e5" title="Alias for third component.">z</a>;      
<a name="l00104"></a>00104     };
<a name="l00105"></a>00105     <span class="keyword">struct </span>{
<a name="l00106"></a><a class="code" href="unionivec3.html#adec3b527adaec362c39cc64e99a209d5">00106</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#adec3b527adaec362c39cc64e99a209d5" title="Alias for first component.">r</a>;      
<a name="l00107"></a><a class="code" href="unionivec3.html#acf1c274732b0ac1f41e783bcddceb962">00107</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#acf1c274732b0ac1f41e783bcddceb962" title="Alias for second component.">g</a>;      
<a name="l00108"></a><a class="code" href="unionivec3.html#a210e7e40afe8afe193fb65f4fe81725e">00108</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#a210e7e40afe8afe193fb65f4fe81725e" title="Alias for third component.">b</a>;      
<a name="l00109"></a>00109     };
<a name="l00110"></a>00110     <span class="keyword">struct </span>{
<a name="l00111"></a><a class="code" href="unionivec3.html#aeb54bdd858e39cfda275bf82a0bad64d">00111</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#aeb54bdd858e39cfda275bf82a0bad64d" title="Alias for first component.">red</a>;    
<a name="l00112"></a><a class="code" href="unionivec3.html#a730c3ef4f99861469a158758aa7eb3e3">00112</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#a730c3ef4f99861469a158758aa7eb3e3" title="Alias for second component.">green</a>;  
<a name="l00113"></a><a class="code" href="unionivec3.html#a6ea8267d27f5cee472235dbb9393d41f">00113</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec3.html#a6ea8267d27f5cee472235dbb9393d41f" title="Alias for third component.">blue</a>;   
<a name="l00114"></a>00114     };
<a name="l00115"></a>00115 } <a class="code" href="unionivec3.html" title="Tuple of 3 ints.">ivec3</a>;
<a name="l00116"></a>00116 
<a name="l00117"></a>00117 
<a name="l00126"></a><a class="code" href="unionivec2.html">00126</a> <span class="keyword">typedef</span> <span class="keyword">union</span>
<a name="l00127"></a>00127 {
<a name="l00128"></a><a class="code" href="unionivec2.html#a1531251d87862d5d3538a9c7585cf628">00128</a>     <span class="keywordtype">int</span> data[2];    
<a name="l00129"></a>00129     <span class="keyword">struct </span>{
<a name="l00130"></a><a class="code" href="unionivec2.html#af988d4faf5b6f3a444947a9e50db9d84">00130</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec2.html#af988d4faf5b6f3a444947a9e50db9d84" title="Alias for first component.">x</a>;      
<a name="l00131"></a><a class="code" href="unionivec2.html#af3d05aae21b896f66ddea08ab983fc72">00131</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec2.html#af3d05aae21b896f66ddea08ab983fc72" title="Alias for second component.">y</a>;      
<a name="l00132"></a>00132     };
<a name="l00133"></a>00133     <span class="keyword">struct </span>{
<a name="l00134"></a><a class="code" href="unionivec2.html#a85b880866b55044d6d051d0e330706e7">00134</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec2.html#a85b880866b55044d6d051d0e330706e7" title="Alias for first component.">s</a>;      
<a name="l00135"></a><a class="code" href="unionivec2.html#ace9bf557b572fc7456503543bfdf73fc">00135</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec2.html#ace9bf557b572fc7456503543bfdf73fc" title="Alias for second component.">t</a>;      
<a name="l00136"></a>00136     };
<a name="l00137"></a>00137     <span class="keyword">struct </span>{
<a name="l00138"></a><a class="code" href="unionivec2.html#a41b37bd266b1ad0baba0e95048c2dd90">00138</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec2.html#a41b37bd266b1ad0baba0e95048c2dd90" title="Alias for first component.">start</a>;  
<a name="l00139"></a><a class="code" href="unionivec2.html#afbdcf1d3969c95de0130a060f25d886e">00139</a>         <span class="keywordtype">int</span> <a class="code" href="unionivec2.html#afbdcf1d3969c95de0130a060f25d886e" title="Alias for second component.">end</a>;    
<a name="l00140"></a>00140     };
<a name="l00141"></a>00141 } <a class="code" href="unionivec2.html" title="Tuple of 2 ints.">ivec2</a>;
<a name="l00142"></a>00142 
<a name="l00143"></a>00143 
<a name="l00153"></a><a class="code" href="unionvec4.html">00153</a> <span class="keyword">typedef</span> <span class="keyword">union</span>
<a name="l00154"></a>00154 {
<a name="l00155"></a><a class="code" href="unionvec4.html#ae40016fa97400690251b4438d7f89a67">00155</a>     <span class="keywordtype">float</span> data[4];    
<a name="l00156"></a>00156     <span class="keyword">struct </span>{
<a name="l00157"></a><a class="code" href="unionvec4.html#a36c650782a67137380c83b01545c94d6">00157</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a36c650782a67137380c83b01545c94d6" title="Alias for first component.">x</a>;      
<a name="l00158"></a><a class="code" href="unionvec4.html#a7328fe0e502fce92fa32016193052e92">00158</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a7328fe0e502fce92fa32016193052e92" title="Alias fo second component.">y</a>;      
<a name="l00159"></a><a class="code" href="unionvec4.html#a12b318751110db034dddc450cdec455d">00159</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a12b318751110db034dddc450cdec455d" title="Alias fo third component.">z</a>;      
<a name="l00160"></a><a class="code" href="unionvec4.html#a0c92fe67e490d9768217a00c2e8abd49">00160</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a0c92fe67e490d9768217a00c2e8abd49" title="Alias fo fourth component.">w</a>;      
<a name="l00161"></a>00161     };
<a name="l00162"></a>00162     <span class="keyword">struct </span>{
<a name="l00163"></a><a class="code" href="unionvec4.html#a251fc1cdd28e043e28288e7ec476577d">00163</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a251fc1cdd28e043e28288e7ec476577d" title="Alias for first component.">x_</a>;     
<a name="l00164"></a><a class="code" href="unionvec4.html#a82f73c624c09cef58f8c3005809ca6f7">00164</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a82f73c624c09cef58f8c3005809ca6f7" title="Alias fo second component.">y_</a>;     
<a name="l00165"></a><a class="code" href="unionvec4.html#ad970de856a9801a9bc96dabda54fb556">00165</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#ad970de856a9801a9bc96dabda54fb556" title="Alias fo third component.">width</a>;  
<a name="l00166"></a><a class="code" href="unionvec4.html#a68a01e2e3c5caed546a6ef39c9763e17">00166</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a68a01e2e3c5caed546a6ef39c9763e17" title="Alias fo fourth component.">height</a>; 
<a name="l00167"></a>00167     };
<a name="l00168"></a>00168     <span class="keyword">struct </span>{
<a name="l00169"></a><a class="code" href="unionvec4.html#a1682827e4304b44e6f768d616cdf3899">00169</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a1682827e4304b44e6f768d616cdf3899" title="Alias for first component.">r</a>;      
<a name="l00170"></a><a class="code" href="unionvec4.html#aa626a2728056a1b410fb8e133bdffd05">00170</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#aa626a2728056a1b410fb8e133bdffd05" title="Alias fo second component.">g</a>;      
<a name="l00171"></a><a class="code" href="unionvec4.html#a62421478df6548c8e5e24d33345e3417">00171</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a62421478df6548c8e5e24d33345e3417" title="Alias fo third component.">b</a>;      
<a name="l00172"></a><a class="code" href="unionvec4.html#ac1c847c2cd65c10fd059fceb8e57a5f6">00172</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#ac1c847c2cd65c10fd059fceb8e57a5f6" title="Alias fo fourth component.">a</a>;      
<a name="l00173"></a>00173     };
<a name="l00174"></a>00174     <span class="keyword">struct </span>{
<a name="l00175"></a><a class="code" href="unionvec4.html#a217cd1d02c6d3ca6892f0df6542212f7">00175</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#a217cd1d02c6d3ca6892f0df6542212f7" title="Alias for first component.">red</a>;    
<a name="l00176"></a><a class="code" href="unionvec4.html#ac5b751220d5788595e9409ef2a40faf3">00176</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#ac5b751220d5788595e9409ef2a40faf3" title="Alias fo second component.">green</a>;  
<a name="l00177"></a><a class="code" href="unionvec4.html#ab68efbfaadd2ce9a9fae04cbbd3db839">00177</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#ab68efbfaadd2ce9a9fae04cbbd3db839" title="Alias fo third component.">blue</a>;   
<a name="l00178"></a><a class="code" href="unionvec4.html#ad5ffee1a120a0856cdab9c03882a7401">00178</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec4.html#ad5ffee1a120a0856cdab9c03882a7401" title="Alias fo fourth component.">alpha</a>;  
<a name="l00179"></a>00179     };
<a name="l00180"></a>00180 } <a class="code" href="unionvec4.html" title="Tuple of 4 floats.">vec4</a>;
<a name="l00181"></a>00181 
<a name="l00182"></a>00182 
<a name="l00191"></a><a class="code" href="unionvec3.html">00191</a> <span class="keyword">typedef</span> <span class="keyword">union</span>
<a name="l00192"></a>00192 {
<a name="l00193"></a><a class="code" href="unionvec3.html#aadc03c7ea8b5c81106846fa138f6a55e">00193</a>     <span class="keywordtype">float</span> data[3];   
<a name="l00194"></a>00194     <span class="keyword">struct </span>{
<a name="l00195"></a><a class="code" href="unionvec3.html#a4ee2cfd5c2698031a47ab7f898d8d47b">00195</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#a4ee2cfd5c2698031a47ab7f898d8d47b" title="Alias for first component.">x</a>;     
<a name="l00196"></a><a class="code" href="unionvec3.html#a891379795a14c80936cde4170239a138">00196</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#a891379795a14c80936cde4170239a138" title="Alias fo second component.">y</a>;     
<a name="l00197"></a><a class="code" href="unionvec3.html#aa76213efcc5d656cc14b71db80a92162">00197</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#aa76213efcc5d656cc14b71db80a92162" title="Alias fo third component.">z</a>;     
<a name="l00198"></a>00198     };
<a name="l00199"></a>00199     <span class="keyword">struct </span>{
<a name="l00200"></a><a class="code" href="unionvec3.html#aad2a8afd4360cc9fd6689899b5c59fa4">00200</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#aad2a8afd4360cc9fd6689899b5c59fa4" title="Alias for first component.">r</a>;     
<a name="l00201"></a><a class="code" href="unionvec3.html#a4f02b7765f76a7ea7265dcfd802d1eca">00201</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#a4f02b7765f76a7ea7265dcfd802d1eca" title="Alias fo second component.">g</a>;     
<a name="l00202"></a><a class="code" href="unionvec3.html#a4153d68b1b7932b554da91c1ee75d77c">00202</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#a4153d68b1b7932b554da91c1ee75d77c" title="Alias fo third component.">b</a>;     
<a name="l00203"></a>00203     };
<a name="l00204"></a>00204     <span class="keyword">struct </span>{
<a name="l00205"></a><a class="code" href="unionvec3.html#ae20ac24a89f064ab8114cba1cc5f1464">00205</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#ae20ac24a89f064ab8114cba1cc5f1464" title="Alias for first component.">red</a>;   
<a name="l00206"></a><a class="code" href="unionvec3.html#a0b4bb5d028799e7b0fe8cf630c4e44b8">00206</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#a0b4bb5d028799e7b0fe8cf630c4e44b8" title="Alias fo second component.">green</a>; 
<a name="l00207"></a><a class="code" href="unionvec3.html#a2e6fd3d0c08dd8a8ba888bcb2b871dd6">00207</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec3.html#a2e6fd3d0c08dd8a8ba888bcb2b871dd6" title="Alias fo third component.">blue</a>;  
<a name="l00208"></a>00208     };
<a name="l00209"></a>00209 } <a class="code" href="unionvec3.html" title="Tuple of 3 floats.">vec3</a>;
<a name="l00210"></a>00210 
<a name="l00211"></a>00211 
<a name="l00219"></a><a class="code" href="unionvec2.html">00219</a> <span class="keyword">typedef</span> <span class="keyword">union</span>
<a name="l00220"></a>00220 {
<a name="l00221"></a><a class="code" href="unionvec2.html#a7bb6aba63933320eff066133eba98ec6">00221</a>     <span class="keywordtype">float</span> data[2]; 
<a name="l00222"></a>00222     <span class="keyword">struct </span>{
<a name="l00223"></a><a class="code" href="unionvec2.html#a002d3519d48fe3cd79729b5b0ded74bf">00223</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec2.html#a002d3519d48fe3cd79729b5b0ded74bf" title="Alias for first component.">x</a>;   
<a name="l00224"></a><a class="code" href="unionvec2.html#a6d28b12b511da692550fc9d37b4e9b1d">00224</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec2.html#a6d28b12b511da692550fc9d37b4e9b1d" title="Alias for second component.">y</a>;   
<a name="l00225"></a>00225     };
<a name="l00226"></a>00226     <span class="keyword">struct </span>{
<a name="l00227"></a><a class="code" href="unionvec2.html#afea9bd8a0e76cc70241ad399d4a6c733">00227</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec2.html#afea9bd8a0e76cc70241ad399d4a6c733" title="Alias for first component.">s</a>;   
<a name="l00228"></a><a class="code" href="unionvec2.html#a73b5ac4301fb38f3ef22cb18a5dc4d87">00228</a>         <span class="keywordtype">float</span> <a class="code" href="unionvec2.html#a73b5ac4301fb38f3ef22cb18a5dc4d87" title="Alias for second component.">t</a>;   
<a name="l00229"></a>00229     };
<a name="l00230"></a>00230 } <a class="code" href="unionvec2.html" title="Tuple of 2 floats.">vec2</a>;
<a name="l00231"></a>00231 
<a name="l00232"></a>00232 
<a name="l00233"></a>00233 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00234"></a>00234 <span class="preprocessor"></span>}
<a name="l00235"></a>00235 <span class="preprocessor">#endif</span>
<a name="l00236"></a>00236 <span class="preprocessor"></span>
<a name="l00237"></a>00237 <span class="preprocessor">#endif </span><span class="comment">/* __VEC234_H__ */</span>
</pre></div></div><!-- contents -->
</div>
</body>
</html>
